//1,先将base64转换为blob
export function dataURLtoBlob(base64Data) {
  let arr = base64Data.split(","),
    mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], { type: mime });
}
//2,再将blob转换为file
export function blobToFile(blob, fileName) {
  blob.lastModifiedDate = new Date(); // 文件最后的修改日期
  blob.name = fileName; // 文件名
  return new File([blob], fileName, {
    type: blob.type,
    lastModified: Date.now(),
  });
}
// 使用示例
export function base64ToFile(base64Data, fileName) {
  // 1.先转为 blob格式  file.content是此文件的base64格式
  let blob = dataURLtoBlob(base64Data);
  // 2，在转为 file类型
  return blobToFile(blob, fileName);
}

/** blob转base64 */
export function blobToBase64(blob: Blob, callback) {
  const reader = new FileReader();
  reader.onloadend = function () {
    callback(null, reader.result);
  };
  reader.onerror = function (error) {
    callback(error);
  };
  reader.readAsDataURL(blob);
}

export function getExtensionFromBase64(base64Data) {
  let arr = base64Data.split(",");
  let mime = arr[0].match(/:(.*?);/)[1];
  return getExtensionFromMimeType(mime);
}

export function getExtensionFromMimeType(mimeType) {
  return "." + mimeType.split("/").pop(); // 获取URL最后一部分作为扩展名
}
